<?php
//当前项目后台控制器父类
namespace Components;
use Think\Controller;

class AdminController extends Controller{
	function __construct(){
		parent::__construct();//先执行父类构造方法
		//对用户访问的每个控制器和方法校验
		$now_ac=CONTROLLER_NAME."-".ACTION_NAME;
	
	//获得当前用户角色对应的（控制器和方法）权限信息
	$mg_info = D('Manager')->find(session('mg_id'));
        $role_id = $mg_info['mg_role_id'];  //获得角色信息
        
        //获得角色信息
        $role_info = D('Role')->find($role_id);
        
        //判断当前用户访问的控制器方法字符串，是否在该用户角色的控制器方法字符串中出现
        //strpos
        if(strpos($role_info['role_auth_ac'],$now_ac) === false){
            //系统里边有些权限默认是让直接访问，不用具体分配
            $allow_arr = array('Manager-login','Manager-verifyImg','Index-left','Index-head','Index-right','Index-index','Manager-logout');
            if(!in_array($now_ac,$allow_arr)){
                //非系统管理员也需要限制
                if(session('mg_name')!='admin'){
                    exit('没有权限访问');
                }
            }
        }
    }
}











